{{#emitJSDoc}}
  /**
   * Enum class {{classname}}.
   * @enum {{=<% %>=}}{<%datatype%>}<%={{ }}=%>
   * @readonly
   */
{{/emitJSDoc}}
  var exports = {
  {{#allowableValues}}
  {{#enumVars}}
{{#emitJSDoc}}
    /**
     * value: {{{value}}}
     * @const
     */
{{/emitJSDoc}}
    "{{name}}": {{{value}}}{{^-last}},
    {{/-last}}
  {{/enumVars}}
  {{/allowableValues}}
  };

  /**
   * Returns a <code>{{classname}}</code> enum value from a Javascript object name.
   * @param {Object} data The plain JavaScript object containing the name of the enum value.
   * @return {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> The enum <code>{{classname}}</code> value.
   */
  exports.constructFromObject = function(object) {
    return exports[object];
  }

  return exports;
}));
